package persistence;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import model.TipoConsulta;

public class TipoConsultaDaoImpl implements TipoConsultaDao {
	Connection c;

	public TipoConsultaDaoImpl() {
		GenericDao gDao = new GenericDao();
		c = gDao.getConnection();
	}

	@Override
	public void salvaTipoConsulta(TipoConsulta tipoConsulta)
			throws SQLException {
		String sql = "INSERT INTO tiposDeAquisicoes VALUES (?,?,?,?)";
		PreparedStatement ps = c.prepareStatement(sql);

		ps.setInt(1, tipoConsulta.getIdConsulta());
		ps.setString(2, tipoConsulta.getTc());
		ps.setString(3, tipoConsulta.getTTc());
		ps.setString(4, tipoConsulta.getPTTc());

		ps.execute();
		ps.close();

	}

	@Override
	public void editaTipoConsulta(TipoConsulta tipoConsulta)
			throws SQLException {
		String sql = "UPDATE tiposDeConsultas SET Tc = ?, " + "TTc = ?, "
				+ "PTTc = ? WHERE idConsulta = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setString(1, tipoConsulta.getTc());
		ps.setString(2, tipoConsulta.getTTc());
		ps.setString(3, tipoConsulta.getPTTc());
		ps.setInt(4, tipoConsulta.getIdConsulta());
		ps.execute();
		ps.close();

	}

	@Override
	public void excluiTipoConsulta(TipoConsulta tipoConsulta)
			throws SQLException {
		String sql = "DELETE tiposDeConsultas WHERE idConsulta = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setInt(1, tipoConsulta.getIdConsulta());
		ps.execute();
		ps.close();

	}

	@Override
	public TipoConsulta pesquisaTipoConsulta(TipoConsulta tipoConsulta)
			throws SQLException {
		TipoConsulta tc = new TipoConsulta();
		String sql = "SELECT idConsulta, Tc, TTc, PTTc FROM tiposDeConsultas WHERE idConsulta = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setInt(1, tipoConsulta.getIdConsulta());
		ResultSet rs = ps.executeQuery();
		if (rs.next()) {

			tc.setIdConsulta(rs.getInt("idConsulta"));
			tc.setTc(rs.getString("Tc"));
			tc.setTTc(rs.getString("TTc"));
			tc.setPTTc(rs.getString("PTTc"));

		}
		ps.close();
		rs.close();
		return tc;
	}

}
